Po zalogowaniu do panelu admina Nextcloud możemy zrobić przegląd serwera czy jest skonfigurowany zgodnie z wymaganiami Nexclouda.

Ustawienia -> Administracja - > Przegląd

https://[nextcloud.domain.com]/index.php/settings/admin/overview

Na dzień dobry dostajemy całą litanię:

1. Limit pamięci PHP jest poniżej zalecanej wartości 512MB.

vim /etc/php/7.3/apache2/php.ini
...
upload_max_filesize = 512M
memory_limit = 512M
...

2. MySQL jest używany jako baza danych, ale nie obsługuje znaków 4-bajtowych. Aby korzystać ze znaków 4-bajtowych w nazwach plików lub komentarzach (np. Emoji), zaleca się włączenie tej obsługi w MySQL. Więcej informacji na ten temat przeczytasz na stronie dokumentacji.

cd /home/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
mysql -u root -p
use ncdb;
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_large_prefix=ON;
ALTER DATABASE ncdb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
\q
sudo -u www-data php occ config:system:set mysql.utf8mb4 --type boolean --value="true"
sudo -u www-data php occ maintenance:repair
sudo -u www-data php occ maintenance:mode --off

3. Nagłówek HTTP "Strict-Transport-Security" nie jest ustawiony na co najmniej "15552000" sekund. W celu zwiększenia bezpieczeństwa zaleca się włączenie HSTS w sposób opisany w poradach bezpieczeństwa

vim /etc/apache2/sites-available/nextcloud.conf
<VirtualHost *:80>
...
Redirect permanent / https://[nextcloud.domain.com]/
...
</VirtualHost
vim /etc/apache2/sites-available/nextcloud-le-ssl.conf
...
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
</IfModule>
...
a2enmod headers
a2enmod rewrite
service apache2 restart

4. Nie skonfigurowano pamięci podręcznej. Jeśli jest dostępna, to skonfiguruj pamięć podręczną dla zwiększenia wydajności. Więcej informacji można znaleźć w dokumentacji.

vim /home/www/nextcloud/config/config.php
...
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Memcached',
...

5. W bazie danych brakuje niektórych indeksów. Ze względu na fakt, że dodawanie indeksów do dużych tabel może zająć trochę czasu, nie zostały one dodane automatycznie. Brakujące indeksy można dodać ręcznie w trakcie pracy instancji uruchamiając 'occ db:add-missing-indices'. Po dopisaniu indeksów zapytania do tabel będą one znacznie szybsze.

cd /home/www/nextcloud/
sudo -u www-data php occ db:add-missing-indices

6. Niektóre kolumny w bazie danych nie zawierają konwersji do big integers. Ze względu na to, że zmiana typów kolumn w dużych tabelach może zająć dużo czasu, nie zostały one zmienione automatycznie. Wykonasz konwersję samodzielnie uruchamiając 'occ db:convert-filecache-bigint'. Ta operacja musi zostać wykonana, gdy instancja jest w trybie offline. Więcej informacji na ten temat przeczytasz na stronie dokumentacji.

cd /home/www/nextcloud/
sudo -u www-data php occ db:convert-filecache-bigint

[Aktualizacja do Nextcloud 19.0.3]

7. W bazie danych brakuje niektórych indeksów. Ze względu na fakt, że dodawanie indeksów do dużych tabel może zająć trochę czasu, dlatego nie zostały one dodane automatycznie. Brakujące indeksy można dodać ręcznie w trakcie pracy instancji uruchamiając "occ db:add-missing-indices". Po dopisaniu indeksów zapytania do tabel będą one znacznie szybsze.

cd /home/www/nextcloud/
sudo -u www-data php occ db:add-missing-indices

8. W bazie danych brakuje niektórych opcjonalnych kolumn. Ze względu na fakt, że dodawanie kolumn do dużych tabel może zająć trochę czasu oraz mogą one być opcjonalne, nie zostały dodane automatycznie. Brakujące kolumny można dodać ręcznie w trakcie pracy instancji uruchamiając "occ db:add-missing-columns". Po dodaniu kolumn niektóre funkcje mogą poprawić czas reakcji lub użyteczność.

cd /home/www/nextcloud/
sudo -u www-data php occ db:add-missing-columns

9. W tej instancji brakuje niektórych zalecanych modułów PHP. W celu zwiększenia wydajności i lepszej kompatybilności zaleca się ich instalację.

sudo aptitude update
sudo aptitude install php7.3-bcmath php7.3-gmp
vim /etc/php/7.3/apache2/php.ini
extension=gmp
sudo service apache2 restart

Update to 20.0.4

"Doctrine\DBAL\Exception\DriverException: An exception occurred while executing 'ALTER TABLE oc_authtoken CHANGE `password_invalid` password_invalid TINYINT(1) DEFAULT '0'': SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes"

mysql -u root -p
SET GLOBAL innodb_file_format=Barracuda;
SET GLOBAL innodb_file_per_table=on;
SET GLOBAL innodb_large_prefix=on;

https://www.youtube.com/watch?v=vPNU3fONY7c

1. Brak indeksu "cards_abiduri" w tabeli "oc_cards".

cd /home/www/nextcloud/
sudo -u www-data php occ db:add-missing-indices

2. Niektóre kolumny w bazie danych nie zawierają konwersji do big integers.

federated_reshares.share_id
share_external.id
share_external.parent

sudo -u www-data php occ db:convert-filecache-bigint

https://docs.nextcloud.com/server/20/admin_manual/configuration_database/bigint_identifiers.html

Dodaj komentarz

Brak komentarzy, bądź pierwszy i dodaj swój komentarz